package role

import (
	"context"
	"git.mycaigou.com/gfyx/micro-gfyx-api/infrastructure/dto/base"
	"git.mycaigou.com/gfyx/micro-gfyx-api/infrastructure/repository/base/role"
)

type RoleService struct {
	roleRepo role.RoleRepositroyIface
}

// 构造函数
func NewRoleService(roleRepo role.RoleRepositroyIface) RoleServiceIface {
	return &RoleService{
		roleRepo: roleRepo,
	}
}

// 新增/修改角色
func (s *RoleService) RoleSave(ctx context.Context, param *base.RoleItem) (int64, error) {
	return s.roleRepo.RoleSave(ctx, param)
}

// 删除角色
func (s *RoleService) RoleDelete(ctx context.Context, param *base.RoleParam) (int64, error) {
	return s.roleRepo.RoleDelete(ctx, param)
}

// 角色列表
func (s *RoleService) RoleList(ctx context.Context) ([]*base.RoleItem, error) {
	return s.roleRepo.RoleList(ctx)
}

// 根据角色获取权限列表
func (s *RoleService) PermissionList(ctx context.Context, param *base.RoleParam) ([]*base.PermissionItem, error) {
	return s.roleRepo.PermissionList(ctx, param)
}

// 增加权限到角色
func (s *RoleService) AddPermissionToRole(ctx context.Context, roleId int64, perIds []int64) error {
	return s.roleRepo.AddPermissionToRole(ctx, roleId, perIds)
}
